﻿<!DOCTYPE HTML>
<html lang="zh">
<head>
<title>检索函数 对象 - 方法 &amp; 属性 | AutoHotkey v2</title>
<meta name="description" content="The 检索函数 对象 provides an interface 遍历 a function to retrieve values, such as the number of parameters, or to perform actions, such as calling." />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<link href="../static/theme.css" rel="stylesheet" type="text/css" />
<script src="../static/content.js" type="text/javascript"></script>
<script type="text/javascript">$(function(){0<=window.navigator.userAgent.toLowerCase().indexOf("ucbrowser")&&CaoNiMaDeUc()})</script>
</head>
<body>

<h1>检索函数 对象</h1>

<p>表示可以被脚本调用的自定义或内置的函数. <a href="../commands/Func.htm">检索函数</a> 返回这种类型的对象(或 <a href="../Functions.htm#closures">Closure</a>(闭包) 对象具有与其相同的属性).</p>

<p>有关其他可以像函数一样调用的对象的信息, 请参阅<a href="Functor.htm">函数对象</a>.</p>

<p>对 检索函数 对象的引用也被称为 <em>函数引用</em>. 要获取函数引用, 请使用 <a href="../commands/Func.htm">检索函数</a> 函数, 如下面的例子所示:</p>
<pre><em>; 检索对名为 "StrLen" 的函数引用.</em>
fn := 检索函数("StrLen")

<em>; 显示函数的信息.</em>
信息框 fn.Name "() is " (fn.IsBuiltIn ? "built-in." : "user-defined.")</pre>

<h2 id="Members">对象成员</h2>
<p><strong>属性:</strong></p>
<ul>
  <li><a href="#Name">Name</a>: 返回函数的名称.</li>
  <li><a href="#IsBuiltIn">IsBuiltIn</a>: <a href="../Functions.htm#BuiltIn">内置</a>函数返回 <i>true</i>, 否则返回 <i>false</i>.</li>
  <li><a href="#IsVariadic">IsVariadic</a>: 当函数为<a href="../Functions.htm#Variadic">可变参数</a>时返回 <i>true</i>, 否则返回 <i>false</i>.</li>
  <li><a href="#MinParams">MinParams</a>: 返回所需参数的数量.</li>
  <li><a href="#MaxParams">MaxParams</a>: 对于用户定义函数返回正式声明的参数数目, 对于内置函数返回最大的参数数目.</li>
</ul>
<p><strong>方法:</strong></p>
<ul>
  <li><a href="#Call">Call</a>: 调用函数.</li>
  <li><a href="#Bind">Bind</a>: 绑定参数到函数并返回<a href="Functor.htm#BoundFunc">绑定函数对象</a>.</li>
  <li><a href="#IsByRef">是否传址</a>: 确定参数是否为 ByRef 类型.</li>
  <li><a href="#IsOptional">IsOptional</a>: 确定参数是否是可选的.</li>
</ul>

<div class="methodShort" id="Call"><h2>Call</h2>
<p>调用函数.</p>
<pre class="Syntax">检索函数.<span class="func">Call</span>(Param1, Param2, ...)
%检索函数%(Param1, Param2, ...)</pre>
<dl>
  <dt>Param1, Param2, ...</dt>
  <dd>参数和返回值由函数定义.</dd>
</dl>
</div>

<div class="methodShort" id="Bind"><h2>Bind</h2>
<p>为函数绑定参数并返回<a href="Functor.htm#BoundFunc">绑定函数对象</a>.</p>
<pre class="Syntax">BoundFunc := 检索函数.<span class="func">Bind</span>(Param1, Param2, ...)</pre>
<dl>
  <dt>Param1, Param2, ...</dt>
  <dd>任意数量的参数.</dd>
</dl>
<p>有关详情和示例, 请参阅<a href="Functor.htm#BoundFunc">绑定函数对象</a>.</p>
</div>

<div class="methodShort" id="Name"><h2>Name</h2>
<p>返回函数的名称.</p>
<pre class="Syntax">FunctionName := 检索函数.Name</pre>
</div>

<div class="methodShort" id="IsBuiltIn"><h2>IsBuiltIn</h2>
<p><a href="../Functions.htm#BuiltIn">内置函数</a>返回 <i>true</i>, 否则返回 <i>false</i>.</p>
<pre class="Syntax">Boolean := 检索函数.IsBuiltIn</pre>
</div>

<div class="methodShort" id="IsVariadic"><h2>IsVariadic</h2>
<p>当函数为<a href="../Functions.htm#Variadic">可变参数</a>时返回 <i>true</i>, 否则返回 <i>false</i>.</p>
<pre class="Syntax">Boolean := 检索函数.IsVariadic</pre>
</div>

<div class="methodShort" id="MinParams"><h2>MinParams</h2>
<p>返回函数必要参数的数目.</p>
<pre class="Syntax">ParamCount := 检索函数.MinParams</pre>
</div>

<div class="methodShort" id="MaxParams"><h2>MaxParams</h2>
<p>对于用户定义函数返回正式声明的参数数目, 对于内置函数返回最大的参数数目.</p>
<pre class="Syntax">ParamCount := 检索函数.MaxParams</pre>
<p>如果函数是<a href="../Functions.htm#Variadic">可变参数</a>的, <em>ParamCount</em> 表示函数在不考虑 "variadic*" 可变参数的情况下可接受的最大参数数目.</p></div>

<div class="methodShort" id="IsByRef"><h2>是否传址</h2>
<p>确定一个参数是否为 ByRef(按地址传递) 类型.</p>
<pre class="Syntax">Boolean := 检索函数.<span class="func">是否传址</span>(<span class="optional">ParamIndex</span>)</pre>
<dl>
  <dt>ParamIndex</dt>
  <dd>
    <p>类型: <a href="../Concepts.htm#numbers">整数</a></p>
    <p>可选: 基于 1 的参数索引. 如果省略, <em>Boolean</em> 表示此函数是否含有 ByRef 参数.</p>
  </dd>
</dl>
<p><strong>返回</strong>指示参数是否为 ByRef 的布尔值. 如果函数为内置函数或 <em>ParamIndex</em> 无效时, 则抛出异常.</p>
</div>

<div class="methodShort" id="IsOptional"><h2>IsOptional</h2>
<p>确定一个参数是否是可选的.</p>
<pre class="Syntax">Boolean := 检索函数.<span class="func">IsOptional</span>(<span class="optional">ParamIndex</span>)</pre>
<dl>
  <dt>ParamIndex</dt>
  <dd>
    <p>类型: <a href="../Concepts.htm#numbers">整数</a></p>
    <p>可选: 基于 1 的参数索引. 如果省略, <em>Boolean</em> 表示此函数是否含有可选参数.</p>
  </dd>
</dl>
<p><strong>返回</strong>指示参数是否为可选参数的布尔值. 如果 <i>ParamIndex</i> 无效, 则抛出异常.</p>
<p>如果此函数是可变参数的, 那么参数可以不进行正式声明. 支持内置函数.</p></div>

</body>
</html>